home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir27
/
calcltr.zip
/
CALC.FRM
< prev
Wrap
Text File
|
1994-01-13
|
26KB
|
1,065 lines
Version 1.00
BEGIN Form frmCalc
AutoRedraw = 0
BackColor = QBColor(7)
BorderStyle = 3
Caption = "Hewlet Sanders"
ControlBox = -1
Enabled = -1
ForeColor = QBColor(0)
Height = Char(20)
Left = Char(7)
MaxButton = 0
MinButton = -1
MousePointer = 5
Tag = ""
Top = Char(3)
Visible = -1
Width = Char(66)
WindowState = 0
BEGIN CommandButton cmdPercent
BackColor = QBColor(3)
Cancel = 0
Caption = "%"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Left = Char(23)
MousePointer = 0
TabIndex = 11
TabStop = 0
Tag = ""
Top = Char(14)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdOperator
BackColor = QBColor(3)
Cancel = 0
Caption = "/"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 3
Left = Char(23)
MousePointer = 0
TabIndex = 9
TabStop = 0
Tag = ""
Top = Char(11)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdOperator
BackColor = QBColor(3)
Cancel = 0
Caption = "-"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 1
Left = Char(23)
MousePointer = 0
TabIndex = 7
TabStop = 0
Tag = ""
Top = Char(8)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdOperator
BackColor = QBColor(3)
Cancel = 0
Caption = "+"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 0
Left = Char(18)
MousePointer = 0
TabIndex = 6
TabStop = 0
Tag = ""
Top = Char(8)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdOperator
BackColor = QBColor(3)
Cancel = 0
Caption = "*"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 2
Left = Char(18)
MousePointer = 0
TabIndex = 8
TabStop = 0
Tag = ""
Top = Char(11)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdOperator
BackColor = QBColor(3)
Cancel = 0
Caption = "="
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 4
Left = Char(18)
MousePointer = 0
TabIndex = 10
TabStop = 0
Tag = ""
Top = Char(14)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdCancelEntry
BackColor = QBColor(3)
Cancel = 0
Caption = "&CE"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Left = Char(23)
MousePointer = 0
TabIndex = 5
TabStop = 0
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdCancel
BackColor = QBColor(3)
Cancel = 0
Caption = "C&LR"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Left = Char(18)
MousePointer = 0
TabIndex = 4
TabStop = 0
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdNumber
BackColor = QBColor(5)
Cancel = 0
Caption = "7"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 7
Left = Char(1)
MousePointer = 0
TabIndex = 14
TabStop = 0
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdNumber
BackColor = QBColor(5)
Cancel = 0
Caption = "8"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 8
Left = Char(6)
MousePointer = 0
TabIndex = 13
TabStop = 0
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdNumber
BackColor = QBColor(5)
Cancel = 0
Caption = "9"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 9
Left = Char(11)
MousePointer = 0
TabIndex = 12
TabStop = 0
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdNumber
BackColor = QBColor(5)
Cancel = 0
Caption = "6"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 6
Left = Char(11)
MousePointer = 0
TabIndex = 15
TabStop = 0
Tag = ""
Top = Char(8)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdNumber
BackColor = QBColor(5)
Cancel = 0
Caption = "5"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 5
Left = Char(6)
MousePointer = 0
TabIndex = 16
TabStop = 0
Tag = ""
Top = Char(8)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdNumber
BackColor = QBColor(5)
Cancel = 0
Caption = "4"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 4
Left = Char(1)
MousePointer = 0
TabIndex = 17
TabStop = 0
Tag = ""
Top = Char(8)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdNumber
BackColor = QBColor(5)
Cancel = 0
Caption = "1"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 1
Left = Char(1)
MousePointer = 0
TabIndex = 20
TabStop = 0
Tag = ""
Top = Char(11)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdNumber
BackColor = QBColor(5)
Cancel = 0
Caption = "2"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 2
Left = Char(6)
MousePointer = 0
TabIndex = 19
TabStop = 0
Tag = ""
Top = Char(11)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdNumber
BackColor = QBColor(5)
Cancel = 0
Caption = "3"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 3
Left = Char(11)
MousePointer = 0
TabIndex = 18
TabStop = 0
Tag = ""
Top = Char(11)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdNumber
BackColor = QBColor(5)
Cancel = 0
Caption = "0"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 0
Left = Char(1)
MousePointer = 0
TabIndex = 2
TabStop = 0
Tag = ""
Top = Char(14)
Visible = -1
Width = Char(10)
END
BEGIN CommandButton cmdDecimal
BackColor = QBColor(5)
Cancel = 0
Caption = "."
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Left = Char(11)
MousePointer = 0
TabIndex = 3
TabStop = 0
Tag = ""
Top = Char(14)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdInFt
BackColor = QBColor(2)
Cancel = 0
Caption = "Inch->mm"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 1
Left = Char(43)
MousePointer = 0
TabIndex = 30
TabStop = -1
Tag = ""
Top = Char(8)
Visible = -1
Width = Char(12)
END
BEGIN CommandButton cmdInFt
BackColor = QBColor(2)
Cancel = 0
Caption = "In-&>Ft"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 0
Left = Char(35)
MousePointer = 0
TabIndex = 26
TabStop = 0
Tag = ""
Top = Char(8)
Visible = -1
Width = Char(8)
END
BEGIN CommandButton cmdInFt
BackColor = QBColor(6)
Cancel = 0
Caption = "COS&x"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 2
Left = Char(56)
MousePointer = 0
TabIndex = 34
TabStop = 0
Tag = ""
Top = Char(8)
Visible = -1
Width = Char(7)
END
BEGIN CommandButton cmdFtsq
BackColor = QBColor(2)
Cancel = 0
Caption = "cm^2->Ft^2"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 1
Left = Char(43)
MousePointer = 0
TabIndex = 31
TabStop = -1
Tag = ""
Top = Char(11)
Visible = -1
Width = Char(12)
END
BEGIN CommandButton cmdFtsq
BackColor = QBColor(2)
Cancel = 0
Caption = "->Ft^&2"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 0
Left = Char(35)
MousePointer = 0
TabIndex = 27
TabStop = 0
Tag = ""
Top = Char(11)
Visible = -1
Width = Char(8)
END
BEGIN CommandButton cmdFtsq
BackColor = QBColor(6)
Cancel = 0
Caption = "T&AN"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 2
Left = Char(56)
MousePointer = 0
TabIndex = 35
TabStop = 0
Tag = ""
Top = Char(11)
Visible = -1
Width = Char(7)
END
BEGIN CommandButton cmdInSq
BackColor = QBColor(2)
Cancel = 0
Caption = "Ft^2->cm^2"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 1
Left = Char(43)
MousePointer = 0
TabIndex = 32
TabStop = -1
Tag = ""
Top = Char(14)
Visible = -1
Width = Char(12)
END
BEGIN CommandButton cmdInSq
BackColor = QBColor(6)
Cancel = 0
Caption = "IN&V"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 2
Left = Char(56)
MousePointer = 0
TabIndex = 36
TabStop = 0
Tag = ""
Top = Char(14)
Visible = -1
Width = Char(7)
END
BEGIN CommandButton cmdInSq
BackColor = QBColor(2)
Cancel = 0
Caption = "&=>In^2"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 0
Left = Char(35)
MousePointer = 0
TabIndex = 28
TabStop = 0
Tag = ""
Top = Char(14)
Visible = -1
Width = Char(8)
END
BEGIN CommandButton cmdFtIn
BackColor = QBColor(2)
Cancel = 0
Caption = "mm->Inch"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 1
Left = Char(43)
MousePointer = 0
TabIndex = 29
TabStop = -1
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(12)
END
BEGIN CommandButton cmdFtIn
BackColor = QBColor(6)
Cancel = 0
Caption = "SI&N"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 2
Left = Char(56)
MousePointer = 0
TabIndex = 33
TabStop = 0
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(7)
END
BEGIN CommandButton cmdFtIn
BackColor = QBColor(2)
Cancel = 0
Caption = "Ft->&In"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Index = 0
Left = Char(35)
MousePointer = 0
TabIndex = 25
TabStop = 0
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(8)
END
BEGIN CommandButton cmdSqrt
BackColor = QBColor(4)
Cancel = 0
Caption = "&SQR"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Left = Char(29)
MousePointer = 0
TabIndex = 21
TabStop = 0
Tag = ""
Top = Char(14)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdMEM
BackColor = QBColor(9)
Cancel = 0
Caption = "M&EM"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Left = Char(29)
MousePointer = 0
TabIndex = 23
TabStop = 0
Tag = ""
Top = Char(8)
Visible = -1
Width = Char(5)
END
BEGIN Label lblReadout
Alignment = 1
AutoSize = 0
BackColor = QBColor(8)
BorderStyle = 1
Caption = ""
DragMode = 0
Enabled = -1
ForeColor = QBColor(14)
Height = Char(3)
Left = Char(1)
MousePointer = 0
TabIndex = 1
Tag = ""
Top = Char(1)
Visible = -1
Width = Char(27)
END
BEGIN CommandButton cmdPower
BackColor = QBColor(4)
Cancel = 0
Caption = "X^&y"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Left = Char(29)
MousePointer = 0
TabIndex = 22
TabStop = 0
Tag = ""
Top = Char(11)
Visible = -1
Width = Char(5)
END
BEGIN CommandButton cmdRECALL
BackColor = QBColor(9)
Cancel = 0
Caption = "&RCL"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Left = Char(29)
MousePointer = 0
TabIndex = 24
TabStop = 0
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(5)
END
BEGIN PictureBox pctKeyTrap
AutoRedraw = 0
BackColor = QBColor(7)
BorderStyle = 1
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(2)
Left = Char(2)
MousePointer = 0
TabIndex = 0
TabStop = -1
Tag = ""
Top = Char(18)
Visible = -1
Width = Char(23)
END
BEGIN Label lblMem
Alignment = 0
AutoSize = -1
BackColor = QBColor(9)
BorderStyle = 0
Caption = "Mem->"
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(29)
MousePointer = 0
TabIndex = 37
Tag = ""
Top = Char(2)
Visible = -1
Width = Char(5)
END
END
DECLARE FUNCTION gettemp$ ()
DECLARE SUB display (b!)
DECLARE SUB cmdMEM_click ()
DECLARE SUB cmdRECALL_click ()
DECLARE SUB cmdSQRT_Click ()
DECLARE SUB cmdPOWER_Click ()
' ------------------------------------------------------------------------
' Visual Basic for MS-DOS Calculator Program
'
' Calculator program that supports mouse and keyboard
' input.
'
' Copyright (C) 1982-1992 Microsoft Corporation
'
' You have a royalty-free right to use, modify, reproduce
' and distribute the sample applications and toolkits provided with
' Visual Basic for MS-DOS (and/or any modified version)
' in any way you find useful, provided that you agree that
' Microsoft has no warranty, obligations or liability for
' any of the sample applications or toolkits.
' ------------------------------------------------------------------------
' Include file containing declarations for called procedures
'$INCLUDE: 'calc.bi'
'$INCLUDE: 'NEWPLUS.BAS'
'CONST FALSE = 0
'CONST TRUE = NOT FALSE
DIM SHARED op1 AS DOUBLE ' Previously input operand.
DIM SHARED op2 AS DOUBLE ' Second operand.
DIM SHARED DecimalFlag AS INTEGER ' Decimal point present yet?
DIM SHARED numops AS INTEGER ' Number of operands.
DIM SHARED LASTINPUT AS STRING ' Indicate type of last keypress.
DIM SHARED OPFLAG AS STRING ' Indicate pending operation.
DIM SHARED Decimal AS STRING ' Decimal indicator (country specific).
DIM SHARED mem AS DOUBLE
' Click event procedure for Cancel Entry (CE) key.
'
SUB cmdCancelEntry_Click ()
DecimalFlag = FALSE ' Decimal point here does not indicate fraction.
LASTINPUT = "CE" ' Track what user did last.
CALL display(0)
END SUB
' Click event procedure for Cancel (C) key.
' Reset the display and initializes variables.
'
SUB cmdCancel_Click ()
lblreadout.Caption = "0"
lblMem.Caption = "MEM->"
DecimalFlag = FALSE
numops = 0
op1 = 0
op2 = 0
LASTINPUT = "NONE"
OPFLAG = ""
pctKeyTrap.SETFOCUS
END SUB
' Click event procedure for Decimal key.
' If last keypress was an operator, initialize
' readout. Otherwise, append a decimal
' point to the display.
'
SUB cmdDecimal_Click ()
IF LASTINPUT <> "NUMS" THEN
lblreadout.Caption = "0" + Decimal
ELSEIF DecimalFlag = FALSE THEN
lblreadout.Caption = lblreadout.Caption + Decimal
END IF
DecimalFlag = TRUE ' Decimal point here does indicate fraction.
LASTINPUT = "NUMS"
pctKeyTrap.SETFOCUS
END SUB
SUB cmdFtIn_Click (index AS INTEGER)
temp$ = gettemp$()
LASTINPUT = ""
IF index = 0 THEN
a = 12 * (VAL(temp$))
ELSEIF index = 1 THEN
a = (VAL(temp$)) / 25.4
ELSE ' index = 2 THEN ' CASE 2
numops = 1
a = VAL(temp$)
IF LASTINPUT = "INVERSE" THEN
'lastinput = "NUMS"
LASTINPUT = ""
IF a > 1 THEN
BEEP: pctKeyTrap.SETFOCUS : EXIT SUB
ELSEIF a = 1 THEN
a = 90
ELSE
a = (a / SQR(1 - a * a))
a = ATN(a)
a = a * 180 / (4 * ATN(1))
END IF
ELSE
a = SIN(a * 4 * ATN(1) / 180)
LASTINPUT = ""
END IF
END IF
CALL display(a)
END SUB
SUB cmdFtsq_Click (index AS INTEGER)
temp$ = gettemp$()
IF index = 0 THEN
a = VAL(temp$) / 144
ELSEIF index = 1 THEN ' CASE 1
a = VAL(temp$) / 929.0304
ELSE
numops = 1
IF LASTINPUT = "INVERSE" THEN
' lastinput = "NUMS"
a = ATN(VAL(temp$)) * 180 / (4 * ATN(1))
ELSE
IF temp$ <> "90" THEN
a = TAN(VAL(temp$) * 4 * ATN(1) / 180)
ELSE
lblreadout.Caption = "UNDEFINED" ': pctKeyTrap.SETFOCUS : EXIT SUB
END IF
END IF
LASTINPUT = ""
END IF
CALL display(a)
END SUB
SUB cmdInFt_Click (index AS INTEGER)
temp$ = gettemp$()
IF index = 0 THEN ' CASE 0
a = VAL(temp$) / 12
ELSEIF index = 1 THEN ' CASE 1
a = VAL(temp$) * 25.4
ELSE ' THEN ' CASE 2
numops = 1
a = VAL(temp$)
IF LASTINPUT = "INVERSE" THEN
'lastinput = "NUMS"
IF a > 1 THEN
BEEP: pctKeyTrap.SETFOCUS : EXIT SUB
ELSEIF a = 1 THEN
a = 0
ELSE
a = -ATN(a / SQR(1 - a * a)) + ATN(1) * 2
a = a * 180 / (4 * ATN(1))
END IF
ELSE
a = COS(a * 4 * ATN(1) / 180)
END IF
LASTINPUT = ""
END IF
CALL display(a)
END SUB
SUB cmdInSq_Click (index AS INTEGER)
temp$ = gettemp$()
IF index = 0 THEN ' CASE 0
a = VAL(temp$) * 144
' lastinput = "INSQ"
CALL display(a)
ELSEIF index = 1 THEN ' CASE 1
a = VAL(temp$) * 929.0304
' lastinput = "METRIC"
CALL display(a)
ELSE
LASTINPUT = "INVERSE"
pctKeyTrap.SETFOCUS
END IF
'lastinput = "NUMS"
END SUB
SUB cmdMEM_click ()
mem = VAL(lblreadout.Caption)
lblMem.Caption = "MEM ->" + lblreadout.Caption
pctKeyTrap.SETFOCUS
LASTINPUT = "NONE"
Clipboard.SETTEXT lblreadout.Caption
END SUB
SUB cmdNumber_Click (Indx AS INTEGER)
IF LASTINPUT <> "NUMS" THEN
lblreadout.Caption = ""
DecimalFlag = FALSE
END IF
IF Indx = -3 THEN
lblreadout.Caption = lblreadout.Caption + "-"
ELSE
tempcolor = cmdNumber(Indx).backcolor
cmdNumber(Indx).backcolor = 0
lblreadout.Caption = lblreadout.Caption + cmdNumber(Indx).Caption
cmdNumber(Indx).backcolor = tempcolor
END IF
LASTINPUT = "NUMS"
pctKeyTrap.SETFOCUS
END SUB
' Click event procedure for operator (+, -, x, /, =) keys.
' If the immediately preceeding keypress was part of a
' number, increment NumOps. If one operand is present,
' set Op1. If two are present, set Op1 equal to the
' result of the operation on Op1 and the current
' input string, and display the result.
'
SUB cmdOperator_Click (Indx AS INTEGER)
ON LOCAL ERROR GOTO overflw
IF LASTINPUT = "NUMS" THEN
numops = numops + 1
END IF
temp$ = lblreadout.Caption
IF numops = 1 THEN
op1 = VAL(temp$)
ELSEIF numops = 2 THEN
op2 = VAL(temp$)
SELECT CASE OPFLAG
CASE "+": op1 = op1 + op2
CASE "-": op1 = op1 - op2
CASE "*": op1 = op1 * op2
CASE "%": op1 = op1 * op2 / 100
CASE "^": op1 = op1 ^ op2
CASE "/":
IF op2 = 0 THEN
MSGBOX "Can't divide by zero", 0, "Calculator"
ELSE
op1 = op1 / op2
END IF
CASE "=": op1 = op2
END SELECT
temp$ = LTRIM$(STR$(op1))
lblreadout.Caption = temp$
numops = 1
END IF
LASTINPUT = "OPS"
OPFLAG = cmdOperator(Indx).Caption
pctKeyTrap.SETFOCUS
EXIT SUB
overflw:
MSGBOX "An overflow error has occured. The resulting number is too large."
CALL cmdCancel_Click
EXIT SUB
'RESUME NEXT
END SUB
' Click event procedure for percent (%) key.
' Compute and display a percentage of the first operand.
'
SUB cmdPercent_Click ()
numops = 1
OPFLAG = "%"
op1 = VAL(lblreadout.Caption)
LASTINPUT = "PERCENT"
pctKeyTrap.SETFOCUS
END SUB
SUB cmdPOWER_Click ()
numops = 1
OPFLAG = "^"
op1 = VAL(lblreadout.Caption)
LASTINPUT = "POWER"
pctKeyTrap.SETFOCUS
END SUB
SUB cmdRECALL_click ()
lblreadout.Caption = LTRIM$(STR$(mem))
pctKeyTrap.SETFOCUS
LASTINPUT = "NUMS"
END SUB
SUB cmdSQRT_Click ()
temp$ = gettemp$()
IF VAL(temp$) < 0 THEN
BEEP
pctKeyTrap.SETFOCUS
ELSE
a = SQR(VAL(temp$))
CALL display(a)
END IF
END SUB
SUB display (b)
temp$ = LTRIM$(STR$(b))
IF temp$ <> "0" THEN temp$ = FORMAT$(b, "############.###########")
lblreadout.Caption = temp$
pctKeyTrap.SETFOCUS
END SUB
SUB Form_Load ()
DecimalFlag = FALSE
numops = 0
LASTINPUT = "NONE"
OPFLAG = ""
Decimal = "."
top = (screen.height - height) \ 2
left = (screen.Width - Width) \ 2
END SUB
FUNCTION gettemp$ ()
temp$ = lblreadout.Caption
IF Decimal = "," AND INSTR(temp$, ",") THEN MID$(temp$, INSTR(temp$, ","), 1) = "."
gettemp = temp$
END FUNCTION
' KeyPress event procedure for KeyTrap picture box.
' The hidden KeyTrap control acts as the central keyboard
' handler. It processes keyboard input and invokes appropriate
' Event Procedure. Focus is always returned to the
' KeyTrap picture box at the end of each click event
' for the command buttons.
'
SUB pctKeyTrap_KeyPress (KeyAscii AS INTEGER)
SELECT CASE KeyAscii
CASE 48 TO 57: '0-9
CALL cmdNumber_Click(KeyAscii - 48)
CASE 8, 127: 'Cancel Entry (CE)
CALL cmdCancelEntry_Click
CASE 13: 'Enter is same as Equal (=)
CALL cmdOperator_Click(4)
CASE 27: 'Cancel All (C)
CALL cmdCancel_Click
CASE 37: 'Percent (%)
CALL cmdPercent_Click
CASE 42: 'Multiply (*)
CALL cmdOperator_Click(2)
CASE 43: 'Add (+)
CALL cmdOperator_Click(0)
CASE 45: 'Subtract (-)
IF (numops > 0 OR LASTINPUT = "NONE") AND OPFLAG <> "=" THEN
CALL cmdNumber_Click(KeyAscii - 48)
ELSE
CALL cmdOperator_Click(1)
END IF
CASE 46', 46: 'Decimal (.) or Comma (,)
CALL cmdDecimal_Click
CASE 47: 'Divide (/)
CALL cmdOperator_Click(3)
CASE 61: 'Equal (=)
CALL cmdOperator_Click(4)
CASE ELSE: BEEP 'Reject all others
END SELECT
END SUB